package com.xd.core.finance.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 收益账户页面查询回款管理返回vo
 * </p>
 *
 * @author ZCH
 * @since 2025-02-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class RepayManageVo {
    @ApiModelProperty(value = "回款交易时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    @ExcelProperty(value = "交易时间")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private Date tradeTime;

    @ApiModelProperty(value = "订单创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    @ExcelProperty(value = "创建时间")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty(value = "回款交易订单号")
    @ExcelProperty(value = "交易单号")
    private String orderNo;

    @ApiModelProperty(value = "债权方机构名称")
    @ExcelProperty(value = "债权方机构名称")
    private String companyName;

    @ApiModelProperty(value = "借款合同编号")
    @ExcelProperty(value = "借款合同编号")
    private String contractNo;

    @ApiModelProperty(value = "交易金额(单位元)")
    @ExcelProperty(value = "交易金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "回款服务费(单位元)")
    @ExcelProperty(value = "服务费")
    private BigDecimal collectionAmount;

    @ApiModelProperty(value = "还款方式(1-自动扣款本期应还+逾期+罚息，2-平台手动代扣本期+逾期+罚息，" +
            "3-线下打款还款本期+逾期+罚息,4-自动线上扣款 (提前还款线上)，5-平台手动代扣 (提前还款线上)，6-线下还款 (提前还款线下))")
    @ExcelIgnore
    private String type;

    @ApiModelProperty(value = "还款方式(1-自动扣款本期应还+逾期+罚息，2-平台手动代扣本期应和逾期和罚息，" +
            "3-线下打款还款本期应和逾期和罚息,4-自动线上扣款 (提前还款线上)，5-平台手动代扣 (提前还款线上)，6-线下还款 (提前还款线下))")
    @ExcelProperty(value = "还款方式")
    private String typeRemark;

    @ApiModelProperty(value = "交易状态（1-申请中，2-交易成功，3-交易失败）")
    @ExcelIgnore
    private String status;

    @ApiModelProperty(value = "交易状态（1-申请中，2-交易成功，3-交易失败）")
    @ExcelProperty(value = "交易状态")
    private String statusRemark;

    @ApiModelProperty(value = "还款方账户名")
    @ExcelProperty(value = "还款方账户名")
    private String repayName;

    @ApiModelProperty(value = "还款方账户号")
    @ExcelProperty(value = "还款方账户号")
    private String repayAccount;
}
